/**
 * CourseDetailsModule.java
 * com.sftz.modules.minapp.coursedetails.module
 * Copyright (c) 2018, 北京科技有限公司版权所有.
*/

package com.sftz.modules.minapp.coursestudy.module;

import java.util.List;
import java.util.Map;

import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;

import com.google.common.collect.Maps;
import com.sftz.assets.entities.CourseEntity;
import com.sftz.assets.entities.inform.NoticeContentEntity;
import com.sftz.framework.rersult.MobileResult;
import com.sftz.modules.minapp.coursestudy.form.CourseRecordForm;
import com.sftz.modules.minapp.coursestudy.form.GradeCourseForm;
import com.sftz.modules.minapp.coursestudy.service.NoticeContentService;

@IocBean
@At("/wx/notice")
public class NoticeContentModule {

	@Inject
	private NoticeContentService noticeContentService;

	/**
	 * 存储课程的学习记录
	 * @Date 2018年12月18日
	 * @author gyp
	 * @param sqlParamForm
	 * @return(这里描述每个参数,如果有返回值描述返回值,如果有异常描述异常)
	 */
	@At
	@Ok("json")
	public Map<String, Object> getNoticeInfos(@Param("..") final CourseRecordForm form) {
		try {
			Map<String, Object> map = Maps.newConcurrentMap();
			//获取公告列表
			List<NoticeContentEntity> notices = noticeContentService.getNoticeContentByCourseId(form.getCourseid());
			//获取课程的百分比
			List<GradeCourseForm> gradeCourse = noticeContentService.getGradeCourseListByCourseId(form.getCourseid());
			//获取课程的详细信息
			CourseEntity course = noticeContentService.getCourseInfo(form.getCourseid());
			//获取课程占比
			//PersonCourseScoreDto personCourseScore = noticeContentService.findStudentScore(form.getCourseid(),form.getUserid());
			map.put("notices", notices);
			map.put("gradeCourse", gradeCourse);
			map.put("course", course);
			//map.put("personCourseScore", personCourseScore);
			return MobileResult.success("", map);
		} catch (Exception e) {
			e.printStackTrace();
			return MobileResult.error("", "error");
		}
	}

	/**
	 * 获取公告详情
	 * @Date 2018年12月28日
	 * @author gyp
	 * @param noticeid
	 */
	@At
	@Ok("json")
	public Object getNoticeInfo(@Param("noticeid") int noticeid) {
		return noticeContentService.getNoticeContent(noticeid);
	}
}
